<?php

final class Categorias_Model extends Model {
	
	public function listar() {
		//listar todas as categorias e retornar para o controlador	
		$conn = $this->db;
		$stmt = $conn->prepare("SELECT * FROM categorias");
		$stmt->execute();
		$rs = $stmt->fetchAll(PDO::FETCH_OBJ);
		$conn = NULL;
		return $rs;
	}
	
	public function inserir($nome) {
		//insere um registro e retorna uma msg para o usuário
		$nome = utf8_decode($nome);
		//validação
		$validate = new Data_Validator();
		$validate->set('nome',$nome)->is_required()->min_length(4);
		if ($validate->validate()) {
			// validação ok	
			$conn = $this->db;
			$stmt = $conn->prepare("INSERT INTO categorias (cat_nome) VALUES ('$nome');");
			$stmt->execute();
			$count = $stmt->rowCount();
			$conn = NULL;
			return $count;
		} else {
			// erro na validação
			$erro_nome = $validate->get_errors('nome');
			foreach($erro_nome as $erro) {
				$msg .= $erro."<br>"; 	
			}
			return $msg;
		}	
		$validate = NULL;
	}
	
	public function alterar($id) {
		//atualiza o registro e retorna uma msg para o usuário
		$conn = $this->db;
		$stmt = $conn->prepare("SELECT * FROM categorias WHERE id='$id'");
		$stmt->execute();
		$rs = $stmt->fetchAll(PDO::FETCH_OBJ);
		$conn = NULL;
		return $rs;
	}
	
	public function alterarRun($id,$cat_nome) {
		$nome = utf8_decode($cat_nome);
		$id = $id;
		//validação 
		$validate = new Data_Validator();
		$validate->set('nome',$nome)->is_required()->min_length(4);
		if ($validate->validate()) {
			//validação ok	
			$conn = $this->db;
			$stmt = $conn->prepare("UPDATE categorias SET cat_nome='$nome' WHERE id=$id;");
			$stmt->execute();
			$count = $stmt->rowCount();
			$conn = NULL;
			return $count;	
		} else {
			//validação com problema
			$erros = $validate->get_errors('nome');
			foreach ($erros as $error) {
				$msg .= $error."<br>";	
			}
			return $msg;
		}
		$validate = NULL;
	}
	
	public function excluir($id) {
		//exclui um registro e retorna uma msg para o usuário
		$stmt = $this->db->prepare("SELECT id_categoria FROM miniaturas WHERE id_categoria=$id;");
		$stmt->execute();
		$count = $stmt->rowCount();
		if (!$count==0) {
			return false;
		} else {
			$stmt = $this->db->prepare("DELETE FROM categorias WHERE id=$id");
			$stmt->execute();
			$count = $stmt->rowCount();
			return $count;
		}
	} 
}

?>